[小ワザ] AWS CloudShellを利用して簡単にS3に保存されているログを確認してみた
こんにちは、コンサル部@大阪オフィスのTodaです。
S3に保存されているログファイルを参照する場合、ダウンロードして確認したりと少し手間だな...と思うときがあります。
今回、圧縮されていないログファイルを簡単に確認する方法としてCloudShellを使って参照をしてみたいと思います。
やりたいこと
- 非公開のバケットに保存されているログファイルの中身を簡単に確認する。
- ダウンロード操作をしないで確認する。
AWS CLIリファレンスで使えそうなコマンドを確認
・s3 cpコマンド
ファイルの中を確認するコマンドは見つかりませんでしたので
今回はオブジェクトのコピーをする「s3 cp」を使ってみようと思います。
やってみる
S3にダミーのログを設置
検証用のログファイルをS3バケット内に保管するようにします。
ファイルの参照で必要な情報として「S3 URL」を控えるようにします。
CloudShellを起動する
AWSマネージメントコンソール上部にあるアイコンをクリックする事でCloudShellが起動します。
CloudShellを起動するとCLI画面が表示されてコマンドを実行することができます。 AWS CLIも初期状態で導入されています。
コマンドを使ってみる
通常の方法でコマンドを利用してファイルを取得してみます。
ふむふむ、ダウンロードされて参照できる状態になりますね。
ただ、この方法だとダウンロード操作 => cat表示と2回コマンドを入力する必要があります。
$ aws s3 cp s3://xxxxxxxxxxx/2020/01/06/test.log ./ download: s3://xxxxxxxxxxx/2020/01/06/test.log to ./test.log $ cat test.log
コマンドで参照してみる
上記コマンドにはターゲットに「-」(ハイフン)を指定することでcatのように参照をする事ができます。 試しにやってみます。
$ aws s3 cp s3://xxxxxxxxxxx/2020/01/06/test.log - | 1609892633437 | START RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Version: $LATEST | 1609892633973 | count is: 1 | 1609892634147 | END RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx | 1609892634147 | REPORT RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Duration: 709.56 ms Billed Duration: 710 ms Memory Size: 128 MB Max Memory Used: 77 MB Init Duration: 357.44 ms | 1609892695562 | START RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Version: $LATEST | 1609892695971 | count is: 1 | 1609892695971 | ERROR 404 NotFound https://xxxxxxxxxxxxxxxxxx.xxxx.xxxx/xxxxxx | 1609892696167 | END RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx | 1609892696167 | REPORT RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Duration: 598.54 ms Billed Duration: 599 ms Memory Size: 128 MB Max Memory Used: 78 MB | 1609892699353 | START RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Version: $LATEST | 1609892699831 | count is: 1 | 1609892699887 | END RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx | 1609892699887 | REPORT RequestId: xxxxxxxxxx-xxxxxxxx-xxxxxxxxxxxx-xx Duration: 527.36 ms Billed Duration: 528 ms Memory Size: 128 MB Max Memory Used: 78 MB
見事に表示する事ができました。
パイプを組み合わせてみる
Linuxコマンドにはパイプと呼ばれる方法でコマンドを組み合わせて使う事ができます。
試しにgrepコマンドで「ERROR」文字が入った行だけ抽出してみます。
$ aws s3 cp s3://xxxxxxxxxxx/2020/01/06/test.log - | grep "ERROR" | 1609892695971 | ERROR 404 NotFound https://xxxxxxxxxxxxxxxxxx.xxxx.xxxx/xxxxxx
さいごに
今回はCloudShellを利用してS3のログを確認してみました。
CloudShellにはストレージとして1GBの容量が確保されているようです。
圧縮ファイルは「コマンドを使ってみる」の方法でダウンロード、解凍をして参照をすることも可能でございます。
少しでも手間を減らせたら良いなと考えております。